var User = require("../modules/User");
var OrderForm = require("../modules/OrderForm");
var DiscardOrderForm = require("../modules/DiscardOrderForm");
var ObjectID = require("mongodb").ObjectID;



var formidable = require("formidable");


var orderFormTypeList = ['中通', '圆通', '申通', '顺丰', '百世', '韵达', '天天', '京东', '近邻宝1', '近邻宝2', '近邻宝3', '其它'];

// 登录状态变量
var login = false;
var username = "";
var userPower = false;

var checkSession = function(req) {
    if (req.session.login === "1") { //已登录
        username = req.session.username;
        login = true;
        userPower = (req.session.userType === "admin" || req.session.userType === "boss");
    } else { //未登录
        username = "";
        login = false;
        userPower = false;
    }
}

// 显示首页
exports.showIndex = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") {
    //     //已登录
    //     var username = req.session.username;
    //     var login = true;
    // } else {
    //     //未登录
    //     var username = "";
    //     var login = false;
    // }

    User.findOne({ username: username }, function(err, result) {
        if (err) {
            res.send("-3"); // 服务器错误
            return;
        }
        OrderForm.find({}, function (err, result2) {
            OrderForm.find({ username: username }, function (err, result3) {
                OrderForm.find({ of_status: "待取件" }, function (err, result4) {
                    res.render("index", {
                        "login": login,
                        "loginUser": result,
                        "count_allOrderForm": result2.length,
                        "count_myOrderForm": result3.length,
                        "count_undoneOrderForm": result4.length
                    })
                });
            });
        });
    });
};

// 用户查询业务
exports.doFindUser = function(req, res, next) {

    checkSession(req);
    // if (req.session.login === "1") {
    //     //已登录
    //     var login = true;
    // } else {
    //     //未登录
    //     var login = false;
    // }

    if (login) {
        // 得到用户填写的东西
        var form = new formidable.IncomingForm();
        form.parse(req, function(err, fields, files) {

            // 获取查询对象
            var findObj = JSON.parse(fields.findObj);

            // 查询数据库，监测用户名是否存在
            User.findOne(findObj, function(err, result) {
                if (err) {
                    res.send("-3"); // 服务器错误
                    return;
                }
                if (result) {
                    // console.log(result)
                    res.json(result); // 用户名已存在
                    return;
                }
                if (!result) {
                    res.send("1"); // 此用户名未被注册，用户名不存在
                    return;
                }
            });
        })
    }
};



// 登录业务
exports.doLogin = function(req, res, next) {

    // 得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function(err, fields, files) {

        // 处理提交的表单
        var username = fields.username;

        // 查询数据库，监测用户名是否存在
        User.findOne({ "username": username }, function(err, result) {
            if (err) {
                console.log("登录用户" + username + "失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                res.send("-3"); // 服务器错误
                return;
            }

            // 未查询到此用户，自动注册
            if (!result) {
                // 整理新用户信息
                var newUser = {
                    "username": username,
                    "joinTimestamp": parseInt(new Date().getTime() / 1000) // 创建时的时间戳，除 1000 将单位从毫秒变为秒
                };

                // 创建新用户
                User.create(newUser, function(err) {
                    if (err) {
                        console.log("注册用户" + username + "失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                        res.send("-3"); // 服务器错误
                        return;
                    }
                    //写入session,保存此人
                    req.session.login = "1";
                    req.session.username = username;
                    req.session.userType = "common";

                    console.log("注册并登录用户" + username + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));

                    res.send("2"); //注册成功
                });
            }

            // 查询到此用户，自动登录
            if (result) {
                console.log("登录用户" + username + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                //写入session,保存此人
                req.session.login = "1";
                req.session.username = username;
                req.session.userType = result.userType;

                res.send("1"); // 登录成功
            }
        });
    })
};

// 执行注销
exports.doLogout = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") {
    //     //已登录
    //     var login = true;
    //     var username = req.session.username;
    // } else {
    //     //未登录
    //     var login = false;
    // }

    if (login) { //已登录
        req.session.login = "0";
        req.session.username = "";
        req.session.userType = "common";
        console.log("注销用户" + username + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
        res.redirect("/");
    } else {
        res.redirect("/");  // 未登录或无权限
    }
};

// 显示新订单页
exports.showNewOrderForm = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") {
    //     //已登录
    //     var username = req.session.username;
    //     var login = true;
    // } else {
    //     //未登录
    //     var username = "";
    //     var login = false;
    // }

    if (login) {
        User.findOne({ "username": username }, function(err, result) {
            if (err) {
                res.send("-3"); // 服务器错误
                return;
            }
            res.render("newOrderForm", {
                "login": login,
                "loginUser": result
            })
        });
    } else {
        res.redirect("/");  // 未登录或无权限
    }
};

// 新订单创建业务
exports.doNewOrderForm = function(req, res, next) {

    // 得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function(err, fields, files) {

        var newOrderForm = {
            "username": req.session.username,
            "of_name": fields.of_name,
            "of_phone": fields.of_phone,
            "of_type": fields.of_type,
            "of_number": fields.of_number,
            "of_address": fields.of_address,
            "of_payType": fields.of_payType,
            "of_note": fields.of_note,
            "of_tailNumber": fields.of_tailNumber,
            "joinTimestamp": parseInt(new Date().getTime() / 1000) // 创建时的时间戳，除 1000 将单位从毫秒变为秒
        };

        var newUserInfo = {
            "of_name": fields.of_name,
            "of_phone": fields.of_phone,
            "of_address": fields.of_address,
            "of_tailNumber": fields.of_tailNumber
        };

        // 更新用户信息
        User.update({username: req.session.username}, newUserInfo, function (err) {
            if (err) {
                console.log(req.session.username + "更新用户信息失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                res.send("-3"); // 服务器错误
                return;
            }
            console.log(req.session.username + "更新用户信息成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
        });

        // 创建新订单
        OrderForm.create(newOrderForm, function(err) {
            if (err) {
                console.log(req.session.username + "创建新订单失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                res.send("-3"); // 服务器错误
                return;
            }


            console.log(req.session.username + "创建新订单成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));

            res.send("1"); // 创建新订单成功
        });
    })
};

// 得到用户列表
exports.getUserList = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") { // 已登录
    //     var login = true;
    // } else { // 未登录
    //     var login = false;
    // }

    if (login) { // 已登录
        var form = new formidable.IncomingForm();
        form.parse(req, function(err, fields, files) {
            if (err) {
                res.send("-3"); // 服务器错误
                return;
            }

            // 处理提交的表单
            var findObj = JSON.parse(fields.findObj);
            User.find(findObj, function(err, result) {
                if (err) {
                    res.send(-3);
                    return;
                }
                res.json(result.reverse()); // result 是一个对象数组
            });
        });
    } else {
        res.json([]);  // 未登录或无权限
    }
};

// 得到订单列表
exports.getOrderFormList = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") { // 已登录
    //     var login = true;
    // } else { // 未登录
    //     var login = false;
    // }

    if (login) { // 已登录
        var form = new formidable.IncomingForm();
        form.parse(req, function(err, fields, files) {
            if (err) {
                res.send("-3"); // 服务器错误
                return;
            }

            // 处理提交的表单
            var findObj = JSON.parse(fields.findObj);
            // var findObj = {
            //         "username": "18635209160",
            //         "of_payType": "支付宝"
            //     }
            OrderForm.find(findObj, function(err, result) {
                if (err) {
                    res.send(-3);
                    return;
                }
                res.json(result.reverse()); // result 是一个对象数组
            });
        });
    } else {
        res.json([]);  // 未登录或无权限
    }
};

// 得到废弃订单列表
exports.getDiscardOrderFormList = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") { // 已登录
    //     var login = true;
    // } else { // 未登录
    //     var login = false;
    // }

    if (login) { // 已登录
        var form = new formidable.IncomingForm();
        form.parse(req, function(err, fields, files) {
            if (err) {
                res.send("-3"); // 服务器错误
                return;
            }

            // 处理提交的表单
            var findObj = JSON.parse(fields.findObj);
            // var findObj = {
            //         "username": "18635209160",
            //         "of_payType": "支付宝"
            //     }
            DiscardOrderForm.find(findObj, function(err, result) {
                if (err) {
                    res.send(-3);
                    return;
                }
                res.json(result.reverse()); // result 是一个对象数组
            });
        });
    } else {
        res.json([]);  // 未登录或无权限
    }
};


// 得到快递公司列表（of_type）
exports.getOrderFormTypeList = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") { // 已登录
    //     var login = true;
    // } else { // 未登录
    //     var login = false;
    // }

    if (login) { // 已登录
        var form = new formidable.IncomingForm();
        form.parse(req, function(err, fields, files) {
            if (err) {
                res.send("-3"); // 服务器错误
                return;
            }
            res.json(orderFormTypeList); // 返回一个数组
        });
    } else {
        res.json([]);  // 未登录或无权限
    }
};

// 显示管理员管理页
exports.showAdminManage = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") { //已登录
    //     var username = req.session.username;
    //     var login = true;
    //     var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
    // } else { //未登录
    //     var username = "";
    //     var login = false;
    //     var userPower = false;
    // }

    if (login && userPower) { //已登录
        User.findOne({ "username": username }, function(err, result) {
            if (err) {
                res.send("-3"); // 服务器错误
                return;
            }
            res.render("adminManage", {
                "login": login,
                "loginUser": result,
                "orderFormTypeList": orderFormTypeList
            })
        });
    } else {
        res.redirect("/");  // 未登录或无权限
    }
};


// 显示全部订单页
exports.showAllOrderForm = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") { //已登录
    //     var username = req.session.username;
    //     var login = true;
    //     var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
    // } else { //未登录
    //     var username = "";
    //     var login = false;
    //     var userPower = false;
    // }

    if (login && userPower) { //已登录
        User.findOne({ "username": username }, function(err, result) {
            if (err) {
                res.send("-3"); // 服务器错误
                return;
            }
            res.render("orderFormList", {
                "login": login,
                "loginUser": result,
                "orderFormTypeList": orderFormTypeList,
                "title": '全部订单',
                "mark": 'allOrderForm',
                "findObj": "",
                "findUrl": "/getOrderFormList"
            })
        });
    } else {
        res.redirect("/");  // 未登录或无权限
    }
};

// 显示未完成订单页面
exports.showUndoneOrderForm = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") { //已登录
    //     var username = req.session.username;
    //     var login = true;
    //     var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
    // } else { //未登录
    //     var username = "";
    //     var login = false;
    //     var userPower = false;
    // }

    if (login && userPower) { //已登录
        User.findOne({ "username": username }, function(err, result) {
            if (err) {
                res.send("-3"); // 服务器错误
                return;
            }
            res.render("orderFormList", {
                "login": login,
                "loginUser": result,
                "orderFormTypeList": orderFormTypeList,
                "title": '未完成订单',
                "mark": 'undoneOrderForm',
                "findObj": {
                    "key": "of_status",
                    "value": "待取件"
                },
                "findUrl": "/getOrderFormList"
            })
        });
    } else {
        res.redirect("/");  // 未登录或无权限
    }
};

// 显示历史订单页
exports.showMyOrderForm = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") { //已登录
    //     var username = req.session.username;
    //     var login = true;
    // } else { //未登录
    //     var username = "";
    //     var login = false;
    // }

    if (login) { //已登录
        User.findOne({ "username": username }, function(err, result) {
            if (err) {
                res.send("-3"); // 服务器错误
                return;
            }
            res.render("orderFormList", {
                "login": login,
                "loginUser": result,
                "orderFormTypeList": orderFormTypeList,
                "title": '我的订单',
                "mark": 'myOrderForm',
                "findObj": {
                    "key": "username",
                    "value": result.username
                },
                "findUrl": "/getOrderFormList"
            })
        });
    } else {
        res.redirect("/");  // 未登录或无权限
    }
};

// 显示我的废弃订单页
exports.showDiscardOrderForm = function(req, res, next) {
    checkSession(req);
    // if (req.session.login === "1") { //已登录
    //     var username = req.session.username;
    //     var login = true;
    //     var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;        
    // } else { //未登录
    //     var username = "";
    //     var login = false;
    //     var userPower = false;
    // }

    if (login && userPower) { //已登录
        User.findOne({ "username": username }, function(err, result) {
            if (err) {
                res.send("-3"); // 服务器错误
                return;
            }

            res.render("orderFormList", {
                "login": login,
                "loginUser": result,
                "orderFormTypeList": orderFormTypeList,
                "title": '废弃订单',
                "mark": 'discardOrderForm',
                "findObj": "",
                "findUrl": "/getDiscardOrderFormList"
            })
        });
    } else {
        res.redirect("/");  // 未登录或无权限
    }
};

// 删除订单
exports.orderFormDelete = function (req, res, next) {
    checkSession(req);
    // if (req.session.login === "1"){  //已登录
    //     var username = req.session.username;
    //     var login = true;
    //     var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
    // }else {  //未登录
    //     var username = "";
    //     var login = false;
    //     var userPower = false;
    // }

    if (login) {  // 已登录

        // 获取 target_id
        var target_id = req.params["target_id"];

        OrderForm.findOne({"_id": target_id}, function (err, result) {
            if (err) {
                res.send("-3");  // 服务器错误
                return;
            }


            var newDiscardOrderForm = {
                "username": result.username,
                "of_name": result.of_name,
                "of_phone": result.of_phone,
                "of_type": result.of_type,
                "of_number": result.of_number,
                "of_address": result.of_address,
                "of_payType": result.of_payType,
                "of_note": result.of_note,
                "of_tailNumber": result.of_tailNumber,
                "of_status": result.of_status,
                "joinTimestamp": parseInt(new Date().getTime() / 1000) // 创建时的时间戳，除 1000 将单位从毫秒变为秒
            };

            DiscardOrderForm.create(newDiscardOrderForm, function (err) {
                if (err){
                    console.log("废弃订单创建失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                    res.send("-3");  // 服务器错误
                }
                console.log("废弃订单创建成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                // res.send("1");  // 修改成功
            });

            OrderForm.remove({"_id": target_id}, function (err) {
                if (err){
                    console.log("删除订单" + target_id + "失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                    res.send("-3");  // 服务器错误
                }
                console.log("删除订单" + target_id + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                // res.send("1");  // 删除订单改成功
                res.redirect("/myOrderForm");
            });
        })

    } else {
        res.send("err");  // 未登录或无权限
    }
};

// 订单状态修改
exports.orderFormStatus = function (req, res, next) {
    checkSession(req);
    // if (req.session.login === "1"){  //已登录
    //     var username = req.session.username;
    //     var login = true;
    //     var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
    // }else {  //未登录
    //     var username = "";
    //     var login = false;
    //     var userPower = false;
    // }

    if (login && userPower) {  // 已登录
        // 获取 target_id
        var target_id = req.params["target_id"];

        OrderForm.findOne({"_id": target_id}, function (err, result) {
            if (err) {
                res.send("-3");  // 服务器错误
                return;
            }


            var newData = {
                "of_status": "已完成"
            };

            // 更新此订单的信息
            OrderForm.update({"_id": target_id}, newData, function (err) {
                if (err){
                    console.log("更新订单状态" + target_id + "失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                    res.send("-3");  // 服务器错误
                }
                console.log("更新订单状态" + target_id + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                // res.send("1");  // 修改成功
                res.redirect("/undoneOrderForm");
            });
        })
    } else {
        res.send("err");  // 未登录或无权限
    }
};

// 用户权限修改
exports.userType = function (req, res, next) {
    checkSession(req);
    // if (req.session.login === "1"){  //已登录
    //     var username = req.session.username;
    //     var login = true;
    //     var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
    // }else {  //未登录
    //     var username = "";
    //     var login = false;
    //     var userPower = false;
    // }

    if (login && userPower) {  // 已登录
        // 获取 target_id
        var target_id = req.params["target_id"];

        User.findOne({"_id": target_id}, function (err, result) {
            if (err) {
                res.send("-3");  // 服务器错误
                return;
            }


            var newData = {
                "userType": 'common'
            };

            // 更新此订单的信息
            User.update({"_id": target_id}, newData, function (err) {
                if (err){
                    console.log("更新用户权限 common " + username + "失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                    res.send("-3");  // 服务器错误
                }
                console.log("更新用户权限 common " + username + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                // res.send("1");  // 修改成功
                res.redirect("/adminManage");
            });
        })
    } else {
        res.send("err");  // 未登录或无权限
    }
};

// 用户权限修改
exports.addAdmin = function (req, res, next) {
    checkSession(req);
    // if (req.session.login === "1"){  //已登录
    //     var username = req.session.username;
    //     var login = true;
    //     var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
    // }else {  //未登录
    //     var username = "";
    //     var login = false;
    //     var userPower = false;
    // }

    if (login && userPower) {  // 已登录
        // 获取 usernmae
        var target_username = req.params["target_username"] - 0;

        User.findOne({"username": target_username}, function (err, result) {
            if (err) {
                res.send("-3");  // 服务器错误
                return;
            }


            var newData = {
                "userType": 'admin'
            };

            // 更新此订单的信息
            User.update({"username": target_username}, newData, function (err) {
                if (err){
                    console.log("更新用户权限 admin " + username + "失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                    res.send("-3");  // 服务器错误
                }
                console.log("更新用户权限 admin " + username + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
                res.send("1");  // 修改成功
                // res.redirect("/adminManage");
            });
        })
    } else {
        res.send("err");  // 未登录或无权限
    }
};

// // 显示添加用户界面
// exports.showUserManageAdd = function (req, res, next) {
//     if (req.session.login === "1"){
//         //已登录
//         var username = req.session.username;
//         var login = true;
//         var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
//     }else {
//         //未登录
//         var username = "";
//         var login = false;
//         var userPower = false;
//     }

//     if (login) {
//         User.findOne({"username": username},  function (err, result) {
//             if (err){
//                 res.send("-3");  // 服务器错误
//                 return;
//             }
//             if (login && userPower){
//                 res.render("userManageAdd",{
//                     "login": login,
//                     "loginUser": result
//                 })
//             } else {
//                 res.render("index",{
//                     "login": login,
//                     "loginUser": result
//                 })
//             }
//         });
//     } else {  //未登录
//         res.render("index",{
//             "login": false
//         })
//     }
// };

// // 添加用户业务,不记录session
// exports.doUserManageAdd = function (req, res, next) {
//     if (req.session.login === "1"){  //已登录
//         var login = true;
//         var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
//     }else {  //未登录
//         var login = false;
//         var userPower = false;
//     }

//     if (login) {  //已登录
//         // 得到用户填写的东西
//         if (userPower){
//             var form = new formidable.IncomingForm();
//             form.parse(req, function (err, fields, files) {

//                 // 处理提交的表单
//                 var username = fields.username;
//                 var password = fields.password;
//                 var userSex = fields.userSex;
//                 var userType = fields.userType;

//                 // 查询用户是否存在
//                 User.findOne({"username": username},  function (err, result) {
//                     if (err){
//                         res.send("-3");  // 服务器错误
//                         return;
//                     }
//                     if (result) {
//                         res.send("-1");  // 用户名已被使用
//                         return;
//                     }

//                     // 没有相同的人，可以进行注册业务
//                     // 整理新用户信息
//                     var newUser = {
//                         "username": username,
//                         "password": md5(md5(password).slice(1,-1) + "zty"),
//                         "joinTime": new Date().Format("yyyy-MM-dd hh:mm:ss"),
//                         "userSex": userSex,
//                         "userType": userType
//                     };
//                     // 创建新用户
//                     User.create(newUser, function (err) {
//                         if (err){
//                             console.log("添加用户" + username + "失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
//                             res.send("-3");  // 服务器错误
//                             return;
//                         }
//                         console.log("添加用户" + username + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));

//                         res.send("1"); //注册成功
//                     });
//                 });
//             })
//         } else {
//             res.redirect("/");
//         }
//     } else {  // 未登录
//         res.render("index",{
//             "login": false
//         })
//     }
// };

// // 显示更新用户信息页
// exports.showUserManageUpdate = function (req, res, next){
//     if (req.session.login === "1"){  //已登录
//         var username = req.session.username;
//         var login = true;
//         var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
//     }else {  //未登录
//         var username = "";
//         var login = false;
//         var userPower = false;
//     }

//     if (login) {  // 已登录
//         User.findOne({"username": username}, function (err, result1) {
//             if (err) {
//                 res.send("-3");  // 服务器错误
//                 return;
//             }
//             if (userPower){  // 拥有用户管理权限
//                 User.findOne({"_id": req.params["target_id"]}, function (err, result2) {
//                     if (err) {
//                         res.send("-3");  // 服务器错误
//                         return;
//                     }
//                     if (result1.username !== result2.username){  // 已登录管理员与目标用户不是一个人，跳转到用户管理修改页
//                         res.render("userManageUpdate", {
//                             "login": login,
//                             "loginUser": result1,
//                             "targetUser": result2
//                         })
//                     } else {  // 已登录管理员与目标用户是一个人，跳转到个人用户编辑页
//                         res.render("userPageUpdate", {
//                             "login": login,
//                             "loginUser": result1
//                         })
//                     }

//                 });
//             } else {  // 无用户管理权限
//                 res.render("index",{
//                     "login": login,
//                     "loginUser": result1
//                 })
//             }
//         });
//     } else {  // 未登录
//         res.render("index",{
//             "login": false
//         })
//     }
// };

// // 执行修改用户
// exports.doUserManageUpdate = function (req, res, next) {

//     if (req.session.login === "1"){  //已登录
//         var username = req.session.username;
//         var login = true;
//         var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
//     }else {  //未登录
//         var username = "";
//         var login = false;
//         var userPower = false;
//     }

//     if (login) {  // 已登录
//         if (userPower){
//             // 得到用户填写的东西
//             var form = new formidable.IncomingForm();
//             form.parse(req, function (err, fields, files) {
//                 if (err){
//                     res.send("-3");  // 服务器错误
//                     return;
//                 }

//                 // 处理提交的表单
//                 var user_id = fields.user_id;
//                 var newUsername = fields.username;
//                 var newUserSex = fields.userSex;
//                 var newUserType = fields.userType;

//                 var newUser = {
//                     "username": newUsername,
//                     "userSex": newUserSex,
//                     "userType": newUserType
//                 };

//                 // 更新此用户的信息
//                 User.update({"_id": user_id}, newUser, function (err) {
//                     if (err){
//                         console.log("更新用户" + username + "失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
//                         res.send("-3");  // 服务器错误
//                     }
//                     console.log("更新用户" + username + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
//                     res.send("1");  // 修改成功
//                 });
//             })
//         }else {  // 无权限
//             res.render("index");
//         }
//     } else {  // 未登录
//         res.render("index",{
//             "login": false
//         })
//     }
// };

// // 显示更新用户密码页
// exports.showUserPasswordUpdate = function (req, res, next){
//     if (req.session.login === "1"){  //已登录
//         var username = req.session.username;
//         var login = true;
//     }else {  //未登录
//         var username = "";
//         var login = false;
//     }

//     if (login) {  // 已登录
//         User.findOne({"username": username}, function (err, result) {
//             if (err) {
//                 res.send("-3");  // 服务器错误
//                 return;
//             }
//             res.render("userPasswordUpdate", {
//                 "login": login,
//                 "loginUser": result
//             })
//         });
//     } else {  // 未登录
//         res.render("index",{
//             "login": false
//         })
//     }
// };

// // 执行密码修改
// exports.doUserPasswordUpdate = function (req, res, next) {

//     if (req.session.login === "1"){  //已登录
//         var username = req.session.username;
//         var login = true;
//     }else {  //未登录
//         var username = "";
//         var login = false;
//     }

//     if (login) {  // 已登录
//         // 得到用户填写的东西
//         var form = new formidable.IncomingForm();
//         form.parse(req, function (err, fields, files) {
//             if (err){
//                 res.send("-3");  // 服务器错误
//                 return;
//             }

//             User.findOne({"username": username}, function (err, result) {
//                 var passwordDb = result.password;

//                 if (fields.passwordNew === undefined){  // 只提交旧密码，只做密码比对
//                     var passwordOld = md5(md5(fields.passwordOld).slice(1,-1) + "zty");
//                     if (passwordDb !== passwordOld){
//                         res.send("-1");  // 密码错误
//                     } else if (passwordDb === passwordOld){
//                         res.send("1");
//                     }
//                 }
//                 if (fields.passwordOld === undefined){  // 只提交新密码，进行密码更新
//                     var passwordNew = md5(md5(fields.passwordNew).slice(1,-1) + "zty");

//                     var newUser = {
//                         "password": passwordNew
//                     };
//                     User.update({"_id": result._id}, newUser, function (err) {
//                         if (err){
//                             console.log("用户" + username + "修改密码失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
//                             res.send("-3");  // 服务器错误
//                         }
//                         console.log("用户" + username + "修改密码成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
//                         res.send("2");  // 修改成功
//                     });
//                 }
//             });
//         })
//     } else {  // 未登录
//         res.render("index",{
//             "login": false
//         })
//     }
// };

// // 执行删除学生
// exports.doRemoveUser = function (req, res, next) {

//     if (req.session.login === "1"){  //已登录
//         var username = req.session.username;
//         var login = true;
//         var userPower = (req.session.userType === "admin" || req.session.userType === "boss") ? true : false;
//     }else {  //未登录
//         var username = "";
//         var login = false;
//         var userPower = false;
//     }

//     if (login) {  // 已登录
//         if (userPower){
//             // 获取 target_id
//             var target_id = req.params["target_id"];

//             User.findOne({"_id": target_id}, function (err, result) {
//                 if (err) {
//                     res.send("-3");  // 服务器错误
//                     return;
//                 }

//                 if (result.username === req.session.username) {  // 要删除的用户为已登录用户
//                     req.session.login = "0";
//                     req.session.username = "";
//                 }
//                 // 执行删除用户
//                 User.remove({"_id": target_id}, function (err) {
//                     if (err) {
//                         console.log("删除用户" + result.username + "失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
//                         res.send("删除用户" + result.username + "失败");
//                     }
//                     console.log("删除用户" + result.username + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
//                     res.redirect("/userManage");
//                 });
//             })
//         } else {  // 无权限
//             res.render("index");
//         }
//     } else {  // 未登录
//         res.render("index",{
//             "login": false
//         })
//     }
// };

// // 显示用户主页
// exports.showUserPage = function (req, res, next) {

//     if (req.session.login === "1"){  //已登录
//         var username = req.session.username;
//         var login = true;
//     }else {  //未登录
//         var username = "";
//         var login = false;
//     }

//     if (login) {  // 已登录

//         User.findOne({"username": username}, function (err, result1) {
//             if (err) {
//                 res.send("-3");  // 服务器错误
//                 return;
//             }

//             // url获取查询参数
//             var targetUser = req.params["targetUser"];

//             if (targetUser.length === 24) {  // _id
//                 var findObj = {"_id": targetUser};
//             } else {  // username
//                 var findObj = {"username": targetUser};
//             }

//             User.findOne(findObj, function (err, result2) {
//                 if (err) {
//                     res.send("-3");  // 服务器错误
//                     return;
//                 }
//                 res.render("userPage", {
//                     "login": login,
//                     "loginUser": result1,
//                     "targetUser": result2
//                 })
//             })
//         });
//     } else {  // 未登录
//         res.render("index",{
//             "login": false
//         })
//     }
// };

// // 显示更新用户信息页
// exports.showUserPageUpdate = function (req, res, next){
//     if (req.session.login === "1"){  //已登录
//         var username = req.session.username;
//         var login = true;
//     }else {  //未登录
//         var username = "";
//         var login = false;
//     }

//     if (login) {  // 已登录
//         User.findOne({"username": username}, function (err, result) {
//             if (err) {
//                 res.send("-3");  // 服务器错误
//                 return;
//             }
//             res.render("userPageUpdate", {
//                 "login": login,
//                 "loginUser": result
//             })
//         });
//     } else {  // 未登录
//         res.render("index",{
//             "login": false
//         })
//     }
// };

// // 执行修改用户
// exports.doUserPageUpdate = function (req, res, next) {

//     if (req.session.login === "1"){  // 已登录
//         var username = req.session.username;
//         var login = true;
//     }else {  // 未登录
//         var login = false;
//         var username = "";
//     }

//     if (login) {  // 已登录
//         // 得到用户填写的东西
//         User.findOne({"username": username},  function (err, result) {
//             if (err){
//                 res.send("-3");  // 服务器错误
//                 return;
//             }

//             var form = new formidable.IncomingForm();
//             form.parse(req, function (err, fields, files) {
//                 if (err){
//                     res.send("-3");  // 服务器错误
//                     return;
//                 }

//                 // 处理提交的表单
//                 var newUsername = fields.username;
//                 var newUserSex = fields.userSex;

//                 var newUser = {
//                     "username": newUsername,
//                     "userSex": newUserSex
//                 };

//                 // 更新此用户的信息
//                 User.update({"_id": result._id}, newUser, function (err) {
//                     if (err){
//                         console.log("更新用户" + username + "失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
//                         res.send("-3");  // 服务器错误
//                     }

//                     // 更新 session
//                     req.session.username = newUsername;

//                     console.log("更新用户" + username + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
//                     res.send("1");  // 修改成功
//                 });

//             });
//         })
//     } else {  // 未登录
//         res.render("index",{
//             "login": false
//         })
//     }
// };





// // 执行评论
// exports.doCommentUser = function (req, res, next) {
//     if (req.session.login === "1") {  //已登录
//         var login = true;
//     } else {  //未登录
//         var login = false;
//     }

//     if (login) {  //已登录
//         // 得到用户填写的东西
//         var form = new formidable.IncomingForm();
//         form.parse(req, function (err, fields, files) {

//             // 处理提交的表单
//             var commentUser = fields.commentUser;
//             var targetUser = fields.targetUser;
//             var commentContent = fields.commentContent;

//                 // 整理新用户信息
//                 var newComment = {
//                     "commentUser": commentUser,
//                     "targetUser": targetUser,
//                     "commentTime": new Date().Format("yyyy-MM-dd hh:mm:ss"),
//                     "commentContent": commentContent
//                 };
//                 // console.log(newComment);
//                 // 创建新评论
//                 UserComment.create(newComment, function (err) {
//                     if (err) {
//                         console.log(commentUser + "评论" + targetUser + "失败" + new Date().Format("yyyy-MM-dd hh:mm:ss"));
//                         res.send("-3");  // 服务器错误
//                         return;
//                     }
//                     console.log(commentUser + "评论" + targetUser + "成功" + new Date().Format("yyyy-MM-dd hh:mm:ss"));

//                     res.send("1"); //评论成功
//                 });
//         })
//     } else {  // 未登录
//         res.render("index", {
//             "login": false
//         })
//     }
// };

// // 得到用户评论列表
// exports.getUserCommentList = function (req, res, next) {
//     if (req.session.login === "1"){  // 已登录
//         var login = true;
//     }else {  // 未登录
//         var login = false;
//     }

//     if (login) {  // 已登录
//         // 得到用户填写的东西
//         var form = new formidable.IncomingForm();
//         form.parse(req, function (err, fields, files) {
//             if (err){
//                 res.send("-3");  // 服务器错误
//                 return;
//             }

//             var findObj = JSON.parse(fields.findObj);
//             UserComment.find(findObj, function (err, result) {
//                 if (err){
//                     res.send(-1);
//                     return;
//                 }
//                 res.json(result.reverse());  // result 是一个对象数组
//             })
//         })
//     } else {  // 未登录
//         res.render("index",{
//             "login": false
//         })
//     }
// };





















// 格式化输出日期
Date.prototype.Format = function(fmt) { //author: meizz
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
};